package com.farmer.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 咨询问答实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("consultation_qa")
public class ConsultationQa {

    /**
     * 咨询ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 问题编号
     */
    @TableField("question_no")
    private String questionNo;

    /**
     * 提问用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 回答专家ID
     */
    @TableField("expert_id")
    private Long expertId;

    /**
     * 问题分类：种植问题、养殖问题、病虫害、市场行情等
     */
    @TableField("category")
    private String category;

    /**
     * 问题标题
     */
    @TableField("title")
    private String title;

    /**
     * 问题详情
     */
    @TableField("question_content")
    private String questionContent;

    /**
     * 问题图片，多个用逗号分隔
     */
    @TableField("question_images")
    private String questionImages;

    /**
     * 专家回答
     */
    @TableField("answer_content")
    private String answerContent;

    /**
     * 回答图片，多个用逗号分隔
     */
    @TableField("answer_images")
    private String answerImages;

    /**
     * 紧急程度：1-一般，2-紧急，3-非常紧急
     */
    @TableField("urgency_level")
    private Integer urgencyLevel;

    /**
     * 咨询费用
     */
    @TableField("consultation_fee")
    private BigDecimal consultationFee;

    /**
     * 支付状态：FREE-免费，PENDING-待支付，PAID-已支付
     */
    @TableField("payment_status")
    private String paymentStatus;

    /**
     * 问题状态：PENDING-待回答，ANSWERED-已回答，CLOSED-已关闭
     */
    @TableField("question_status")
    private String questionStatus;

    /**
     * 是否公开：0-私密，1-公开
     */
    @TableField("is_public")
    private Integer isPublic;

    /**
     * 是否精选：0-否，1-是
     */
    @TableField("is_featured")
    private Integer isFeatured;

    /**
     * 浏览次数
     */
    @TableField("view_count")
    private Integer viewCount;

    /**
     * 点赞次数
     */
    @TableField("like_count")
    private Integer likeCount;

    /**
     * 用户满意度（1-5分）
     */
    @TableField("user_satisfaction")
    private Integer userSatisfaction;

    /**
     * 提问时间
     */
    @TableField("question_time")
    private LocalDateTime questionTime;

    /**
     * 回答时间
     */
    @TableField("answer_time")
    private LocalDateTime answerTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
} 